/*
 * norman.cc
 *
 *  Created on: 21/02/2011
 *      Author: norman
 */

#include <iostream>
#include <string.h>
using namespace std;

const int MaxTareas= 50;  // Tamaño máximo de tareas a realizar.



typedef struct
{
	string descripcion;
	bool completada;

}Tarea;

typedef Tarea Tareas[MaxTareas];

void mostrarLista(Tareas , bool , int );
void tareaDeCadena(Tareas &, int &, char &);
void insertarTarea(Tareas & , int &);
void ordenaTarea(Tareas , int);

void limpiarBuffer()
{

  while(cin.get() != '\n');
}

void mostrarLista(Tareas tareas, bool completado, int ntareas)
{
	int i=0;

	ordenaTarea(tareas, ntareas);
	cout << "------------TAREAS PENDIENTES------------------------" << endl;
	for(i=0;i<ntareas;i++)
	{
		if(completado==tareas[i].completada)
		{
			cout << i+1 << " | " << tareas[i].descripcion << endl;
		}
	}
	cout << "-----------------------------------------------------" << endl;

}

void insertarTarea(Tareas &tareas, int &ntareas)
{
	tareas[ntareas].completada=false;
	ntareas++;

}

void tareaDeCadena(Tareas &tareas, int &ntareas, string &opcion)
{

	for(int i=1;i<opcion.length();i++)
	{
		opcion[i-1]=opcion[i+2];
	}
	opcion.resize(opcion.length()-4);

	tareas[ntareas].descripcion.assign(opcion);
	insertarTarea(tareas, ntareas);
}

void ordenaTarea(Tareas tareas, int ntareas)
{
	int i, j;
	string aux;

	for(i=0; i<ntareas;i++)
	{
		for(j=i+1;i<=ntareas;i++)
		{
			if(tareas[i].descripcion.compare(tareas[j].descripcion)>0)
			{
				aux=tareas[i].descripcion;
				tareas[i].descripcion = tareas[j].descripcion;
				tareas[j].descripcion = aux;
			}
		}
	}
}


int main()
{
	Tareas tareas;

	int ntareas=0;
	string opcion;
	bool completado=false;

	while(opcion[0] != 's')
	{

		mostrarLista(tareas, completado, ntareas);

		cout << "M1-ORDEN: " << endl;
		getline(cin,opcion);

		switch(opcion[0])
		{
			case 'a':
						tareaDeCadena(tareas, ntareas, opcion);
						break;
			case 'b':
						break;
			case 'c':
						break;
			case 'd':
						break;
			case 'e':
						break;
			case 's':
					cout << "Fin del programa." << endl;
					break;
		}
	}
}
